1. Field of the Invention
The present invention relates to data processing systems, and, in particular, to apparatuses and method for providing for temporal indexing for synchronized storing and retrieval of multiple audio, video, and data streams.
2. Description of the Related Art
In computer systems, there is a need for storage and retrieval of various types of data streams. These data streams can be audio data streams, video data streams, or other types of (non-video, non-audio) data streams. There is often a need to store (and retrieve) multiple streams of such data, and to maintain the temporal synchronization of such data so that, upon retrieval or playback, streams that occurred simultaneously maintain the correct time synchronization. Audio, video, and data streams sometimes referred to collectively herein as "A/V/D streams," and storage and retrieval of A/V/D streams is (also referred to as record and playback, or write and read, of such data. In computer systems such as data conferencing (or "teleconferencing") systems, a plurality of users are provided with the ability to have an electronic on-line meeting even if the users are not physically in the same room or building. Using application programs for this purpose, modem communication systems have enabled the ability to have a "meeting" wherein all users participate in the meeting through their individual computer systems and share data, graphics, text, and other types of information. Users may communicate with one another, sharing data in the form of graphical images, text, or other "annotations" and other information represented on the computer system display. This is analogous to a meeting where participants in a face-to-face meeting may display information to one another on a whiteboard and other participants may add annotations, delete, or otherwise modify the board. In some usages, video data may also be shared among a plurality of connected users during such teleconferences, or video conferences. For such an electronic conferencing system, it is desirable for individual users to be able to selectively record (and play back) any or all of the individual A/V/D streams that constitute the data conference.
Some current methods, such as those using the Microsoft.RTM. audio-video interleave ("AVI") file standard, allow the recording and indexing of A/V/D streams. Current techniques utilizing such interleave formats, however, do not provide an efficient means of locating (seeking) given time-points within the A/V/D recording, especially when the various streams are not all simultaneously recorded (e.g., some streams are paused and resumed while others are still continuously recorded). Further, once a particular location in the file has been seeked which corresponds to a particular time-point, such current methods do not provide a means for selectively reading one or more of the streams while maintaining synchronization between those streams. Thus, prior art indexing and synchronization methods suffer from several disadvantages. There is, therefore, a need for methods and apparatuses that provide for temporal indexing for synchronized storing and retrieval of multiple audio, video, and data streams.
There is also a need to be able to retrieve and playback certain defined events that occur during a data conference. Current methods, such as those utilizing the AVI file format standard, do not provide a means for tagging an event within a given A/V/D recording which may be randomly accessed for playback. There is, therefore, a need for methods and apparatuses that provide for event tagging for synchronized storing and retrieval of multiple A/V/D streams.
Additionally, various A/V/D streams may be paused and resumed independently of one another during a data conference. There is, therefore, a need for methods and apparatuses for creation and management of multiple discontinuous segments of different types of data (i.e. A/V/D) streams in a single file.